package com.atguigu;

/**
 * 中介者抽象类，也可以是interface接口
 *
 * @author melo
 */
public abstract class Mediator {
    /**
     * 将给中介者对象，加入到集合中
     *
     * @param colleagueName 同事的姓名，作为Map的Key
     * @param colleague     具体的同事, 作为Map的Value
     */
    public abstract void register(String colleagueName, Colleague colleague);

    /**
     * 接收消息, 由具体的同事对象发出
     *
     * @param stateChange   改变的状态
     * @param colleagueName 同事的姓名
     */
    public abstract void getMessage(int stateChange, String colleagueName);

    /**
     * 发送消息，由具体的同事对象执行
     */
    public abstract void sendMessage();
}
